# import socket
#
# # 获取主机名
# hostname = socket.gethostname()
# # 获取IP
# ip = socket.gethostbyname(hostname)
#
# print("主机名：", hostname)
# print("IP：", ip)


import socket
import fcntl
import struct
import binascii
# 创建一个 socket 对象，使用 IPv4 和 TCP 协议
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 使用 fcntl.ioctl 函数获取网络接口的信息
# SIOCGIFHWADDR 表示获取硬件地址信息
# eth0 表示获取 eth0 网络接口的信息，可以根据实际情况修改
infoEth0 = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', b'eth0'[:15]))
infoWlan0 = fcntl.ioctl(s.fileno(), 0x8927, struct.pack('256s', b'wlan0'[:15]))
# 将获取到的硬件地址信息转换为 MAC 地址的字符串格式
# 使用 binascii 模块中的 b2a_hex 函数进行转换
mac_eth = binascii.b2a_hex(infoEth0[18:24]).decode('utf-8')
mac_wlan = binascii.b2a_hex(infoWlan0[18:24]).decode('utf-8')
# 输出 MAC 地址
print("eth0: " + mac_eth)
print("wlan0: " + mac_wlan)

# import wmi
# # 创建 wmi 对象
# wmi_obj = wmi.WMI()
# # 获取网络接口信息
# network_adapters = wmi_obj.Win32_NetworkAdapterConfiguration(IPEnabled=True)
# # 遍历网络接口信息，获取 MAC 地址
# for adapter in network_adapters:
#     print(adapter.MACAddress)